home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Megahits 7
/
Megahits 7 (1995)(GTI - Rhein-Main-Soft)(DE)[!].iso
/
franz
/
franz_051_100
/
franz_051.dms
/
franz_051.adf
/
BuchDatei
/
Bücherdatei
(
.txt
)
< prev
next >
Wrap
AmigaBASIC Source Code
|
1989-07-02
|
22KB
|
892 lines
SCREEN 1,640,205,4,2
WINDOW 1," Bücher Datei - Version 1.0 - © August 1989 by Eumelsoft - It's Public Domain",,0,1
FOR i=0 TO 8:READ r,g,b:PALETTE i,r,g,b:NEXT
DATA .5,.37,.23, 0,.1,.6, 0,0,0, 1,1,1, .4,.2,.13, .2,.2,.2, 1,.87,.73, .83,.1,0
DATA .53,.53,.53
GOSUB shareware
GOSUB dateivorhanden
kastenmalen:
CALL schatten (10,160,70,180)
CALL schatten (72,160,132,180)
CALL schatten (134,160,194,180)
CALL schatten (196,160,256,180)
CALL schatten (258,160,318,180)
CALL schatten (320,160,380,180)
CALL schatten (382,160,442,180)
CALL schatten (444,160,504,180)
CALL schatten (506,160,566,180)
CALL schatten (568,160,628,180)
symbolemalen:
LINE (15,168)-(15,178):LINE -(55,173):LINE -(15,168)
LINE (55,168)-(53,178),,bf
LINE (77,168)-(77,178):LINE -(112,173):LINE -(77,168)
LINE (139,168)-(139,178):LINE -(161,173):LINE -(139,168)
LINE (161,168)-(161,178):LINE -(186,173):LINE -(161,168)
LINE (196,173)-(221,168):LINE -(221,178):LINE -(196,173)
LINE (221,173)-(246,168):LINE -(246,178):LINE -(221,173)
LINE (260,173)-(305,168):LINE -(305,178):LINE -(260,173)
LINE (320,168)-(335,168):LINE (320,171)-(325,171)
LINE (320,173)-(332,173):LINE (320,176)-(326,176)
LINE (320,178)-(331,178)
LINE (355,168)-(360,168)
LINE -(360,171):LINE -(365,171):LINE -(365,174)
LINE -(360,174):LINE -(360,177):LINE -(355,177)
LINE -(355,174):LINE -(350,174):LINE -(350,171)
LINE -(355,171):LINE -(355,168)
LINE (385,168)-(433,168):LINE (387,170)-(430,170)
LINE (385,172)-(420,172):LINE (385,174)-(412,174)
LINE (385,176)-(393,176):LINE (389,178)-(430,178)
CALL pixlocate (400,178):PRINT "??"
LINE (444,168)-(460,168):LINE (444,172)-(455,172)
LINE (444,175)-(454,175)
LINE (440,168)-(456,178):LINE (440,176)-(455,168)
LINE (475,168)-(490,168):LINE (475,171)-(487,171)
LINE (475,173)-(476,173):LINE (477,173)-(489,173)
LINE (506,168)-(556,180),,b:LINE (512,168)-(512,180)
LINE (550,168)-(550,180):LINE (515,170)-(545,170)
LINE (515,172)-(540,172):LINE (517,174)-(545,174)
LINE (515,176)-(525,176):PSET (509,170):PSET (553,170)
PSET (509,173):PSET (553,173)
PSET (509,176):PSET (553,176)
LINE (573,168)-(568,168):LINE -(568,178):LINE -(573,178)
LINE (568,173)-(573,173):LINE (576,178)-(576,168)
LINE -(581,178):LINE -(581,168):LINE (585,168)-(585,178)
LINE -(590,175):LINE -(590,171):LINE -(585,168)
LINE (599,168)-(594,168):LINE -(594,178):LINE -(599,178)
LINE (594,173)-(599,173):LINE (606,168)-(612,168)
LINE -(609,174):LINE -(606,168):LINE (607,176)-(610,178),,bf
RETURN
dateivorhanden:
CALL fenster(150,50,490,100,"Datei vorhanden?"+SPACE$(45))
CALL kasten (22,25,60,45,1):CALL kasten (260,25,318,45,1)
COLOR 4:LOCATE 2,3
PRINT "Existiert bereits eine Datei?"
COLOR 7,1:LOCATE 5,5:PRINT "Ja":LOCATE 5,35:PRINT"Nein"
dummi=MOUSE(0)
100 WHILE MOUSE(0)=0:WEND
x=MOUSE(3):y=MOUSE(4)
IF x>22 AND x<60 AND y>25 AND y<45 THEN WINDOW CLOSE 2:GOTO dateiladen
IF x>260 AND x<318 AND y>25 AND y<45 THEN WINDOW CLOSE 2:GOTO dateianlegen
GOTO 100
dateiladen:
CALL fenster(130,50,510,100,"Datei laden"+SPACE$(60))
maske 2,3,"Pfad:",1,25
maske 4,3,"Dateiname:",1,20
LOCATE 2,9:CALL lineedit (lauf$,25,0)
LOCATE 4,14:CALL lineedit (dateiname$,20,0)
WINDOW CLOSE 2
GOTO dateiladenstart
dateianlegen:
CALL fenster(130,50,510,100,"Datei anlegen"+SPACE$(60))
maske 2,3,"Pfad:",1,25
maske 4,3,"Dateiname:",1,20
LOCATE 2,9:CALL lineedit (lauf$,25,0)
LOCATE 4,14:CALL lineedit (dateiname$,20,0)
GOTO einstellung
einstellung:
CALL fenster(50,30,590,170,"Parameter einstellen"+SPACE$(100))
autor%=25:verlag%=20:titel%=35:bestell%=10:preis%=5:bemerkung%=30:art%=15
maske 3,3,"Autor:",1,autor%
maske 5,3,"Titel:",1,titel%
maske 7,3,"Verlag:",1,verlag%
maske 9,3,"Art:",1,art%
maske 12,3,"Best.-Nr.:",1,bestell%
maske 14,3,"Preis:",1,preis%
maske 16,3,"Bemerkung:",1,bemerkung%
CALL kasten (500,10,530,130,1)
FOR i%=13 TO 74 STEP 16
CALL kasten (453,i%,480,i%+13,1)
CALL kasten (423,i%,450,i%+13,1)
NEXT
FOR i%=85 TO 130 STEP 16
CALL kasten (453,i%,480,i%+13,1)
CALL kasten (423,i%,450,i%+13,1)
NEXT
COLOR 7,1
FOR i=1 TO 14:READ b$
LOCATE 1+i+1,65:PRINT b$
NEXT
DATA A,L,L,E,S," ",K,L,A,R," ",M,A,N
FOR i=3 TO 9 STEP 2
LOCATE i,59:PRINT"+":LOCATE i,55:PRINT"-"
NEXT
FOR i=12 TO 16 STEP 2
LOCATE i,55:PRINT"-":LOCATE i,59:PRINT"+"
NEXT
dummi=MOUSE(0):MOUSE ON
300 WHILE MOUSE(0)=0:WEND
x=MOUSE(3):y=MOUSE(4)
IF x>500 AND x<530 AND y>10 AND y<130 THEN WINDOW CLOSE 2:GOTO eingabe
IF x>453 AND x<480 AND y>13 AND y<26 THEN GOSUB autorplus
IF x>423 AND x<450 AND y>13 AND y<26 THEN GOSUB autorminus
IF x>453 AND x<480 AND y>29 AND y<42 THEN GOSUB titelplus
IF x>423 AND x<450 AND y>29 AND y<42 THEN GOSUB titelminus
IF x>453 AND x<480 AND y>45 AND y<53 THEN GOSUB verlagplus
IF x>423 AND x<450 AND y>45 AND y<53 THEN GOSUB verlagminus
IF x>423 AND x<450 AND y>56 AND y<69 THEN GOSUB artminus
IF x>453 AND x<480 AND y>56 AND y<69 THEN GOSUB artplus
IF x>423 AND x<450 AND y>85 AND y<98 THEN GOSUB bestellminus
IF x>453 AND x<480 AND y>85 AND y<98 THEN GOSUB bestellplus
IF x>423 AND x<450 AND y>101 AND y<114 THEN GOSUB preisminus
IF x>453 AND x<480 AND y>101 AND y<114 THEN GOSUB preisplus
IF x>423 AND x<450 AND y>117 AND y<130 THEN GOSUB bemerkungminus
IF x>453 AND x<480 AND y>117 AND y<130 THEN GOSUB bemerkungplus
GOTO 300
bemerkungplus:
bemerkung%=bemerkung%+1
IF bemerkung%>36 THEN bemerkung%=36
LINE (110,117)-(400,130),0,bf
maske 16,3,"Bemerkung:",1,bemerkung%
SLEEP:SLEEP
RETURN
bemerkungminus:
bemerkung%=bemerkung%-1
IF bemerkung%<1 THEN bemerkung%=1
LINE (110,117)-(400,130),0,bf
maske 16,3,"Bemerkung:",1,bemerkung%
SLEEP:SLEEP
RETURN
preisplus:
preis%=preis%+1
IF preis%>10 THEN preis%=10
LINE (65,101)-(400,114),0,bf
maske 14,3,"Preis:",1,preis%
SLEEP:SLEEP
RETURN
preisminus:
preis%=preis%-1
IF preis%<1 THEN preis%=1
LINE (65,101)-(400,114),0,bf
maske 14,3,"Preis:",1,preis%
SLEEP:SLEEP
RETURN
bestellminus:
bestell%=bestell%-1
IF bestell%<1 THEN bestell%=1
LINE (100,85)-(400,96),0,bf
maske 12,3,"Best.-Nr.:",1,bestell%
SLEEP:SLEEP
RETURN
bestellplus:
bestell%=bestell%+1
IF bestell%>30 THEN bestell%=30
LINE (100,85)-(400,96),0,bf
maske 12,3,"Best.-Nr.:",1,bestell%
SLEEP:SLEEP
RETURN
autorplus:
autor%=autor%+1
IF autor%>39 THEN autor%=39
LINE (65,15)-(400,30),0,bf
maske 3,3,"Autor:",1,autor%
SLEEP:SLEEP
RETURN
autorminus:
autor%=autor%-1
IF autor%<1 THEN autor%=1
LINE (65,15)-(400,30),0,bf
maske 3,3,"Autor:",1,autor%
SLEEP:SLEEP
RETURN
titelplus:
titel%=titel%+1
IF titel%>39 THEN titel%=39
LINE (65,28)-(400,43),0,bf
maske 5,3,"Titel:",1,titel%
SLEEP:SLEEP
RETURN
titelminus:
titel%=titel%-1
IF titel%<1 THEN titel%=1
LINE (65,28)-(400,43),0,bf
maske 5,3,"Titel:",1,titel%
SLEEP:SLEEP
RETURN
verlagminus:
verlag%=verlag%-1
IF verlag%<1 THEN verlag%=1
LINE (70,47)-(400,55),0,bf
maske 7,3,"Verlag:",1,verlag%
SLEEP:SLEEP
RETURN
verlagplus:
verlag%=verlag%+1
IF verlag%>38 THEN verlag%=38
LINE (70,47)-(400,55),0,bf
maske 7,3,"Verlag:",1,verlag%
SLEEP:SLEEP
RETURN
artminus:
art%=art%-1
IF art%<1 THEN art%=1
LINE (60,60)-(400,73),0,bf
maske 9,3,"Art:",1,art%
SLEEP:SLEEP
RETURN
artplus:
art%=art%+1
IF art%>38 THEN art%=38
LINE (60,60)-(400,73),0,bf
maske 9,3,"Art:",1,art%
SLEEP:SLEEP
RETURN
eingabe:
anfang%=1:ende%=1
datei$=lauf$+dateiname$
OPEN "R",#1,datei$,280
FIELD #1,40 AS aut$,40 AS tit$,40 AS ver$,40 AS ar$,40 AS bes$,40 AS pre$,40 AS bem$
eingabestart:
COLOR 7,0:LOCATE 5,3:PRINT "Nummer: ";ende%
maske 7,3,"Autor:",1,autor%
maske 9,3,"Titel:",1,titel%
maske 11,3,"Verlag:",1,verlag%
maske 13,3,"Art:",1,art%
maske 15,3,"Best.-Nr.:",1,bestell%
maske 17,3,"Preis:",1,preis%
maske 19,3,"Bemerkung:",1,bemerkung%
LOCATE 7,10:CALL lineedit (autor$,autor%,0)
IF autor$="" THEN eingabeverlassen
LOCATE 9,10:CALL lineedit (titel$,titel%,0)
LOCATE 11,11:CALL lineedit (verlag$,verlag%,0)
LOCATE 13,8:CALL lineedit (art$,art%,0)
LOCATE 15,14:CALL lineedit (bestell$,bestell%,0)
LOCATE 17,10:CALL lineedit (preis$,preis%,0)
LOCATE 19,14:CALL lineedit (bemerkung$,bemerkung%,0)
LSET aut$=autor$
LSET tit$=titel$
LSET ver$=verlag$
LSET ar$=art$
LSET bes$=bestell$
LSET pre$=preis$
LSET bem$=bemerkung$
PUT #1,ende%
ende%=ende%+1
autor$="":titel$="":verlag$="":art$="":bestell$=""
preis$="":bemerkung$=""
GOTO eingabestart
eingabeverlassen:
ende%=ende%-1
CLOSE #1
daten$=datei$+".sqr"
OPEN daten$ FOR OUTPUT AS#2
WRITE #2,ende%,autor%,titel%,art%,bestell%,preis%,bemerkung%,verlag%
CLOSE #2
dateiladenstart:
COLOR 1,0:CLS
anfang%=1
datei$=lauf$+dateiname$
OPEN "R",#1,datei$,280
FIELD #1,40 AS aut$,40 AS tit$,40 AS ver$,40 AS ar$,40 AS bes$,40 AS pre$,40 AS bem$
daten$=datei$+".sqr"
OPEN "I",#2,daten$
WHILE NOT EOF (2)
INPUT #2,ende%,autor%,titel%,art%,bestell%,preis%,bemerkung%,verlag%
WEND
CLOSE #2
GOSUB kastenmalen
dateizeigen:
GET #1,anfang%
COLOR 7,0:LOCATE 2,3:PRINT "Nummer: ";anfang%
COLOR 1,0:LOCATE 5,3:PRINT"Autor: "
LOCATE 7,3:PRINT "Titel: "
LOCATE 9,3:PRINT "Verlag: ":LOCATE 11,3:PRINT "Art: "
LOCATE 13,3:PRINT "Best.-Nr.:":LOCATE 15,3:PRINT"Preis: "
LOCATE 17,3:PRINT "Bemerkung: "
COLOR 6,0
LOCATE 5,14:PRINT aut$
LOCATE 7,14:PRINT tit$
LOCATE 9,14:PRINT ver$
LOCATE 11,14:PRINT ar$
LOCATE 13,14:PRINT bes$
LOCATE 15,14:PRINT pre$
LOCATE 17,14:PRINT bem$
dummi=MOUSE(0):MOUSE ON
400 WHILE MOUSE(0)=0:WEND
x=MOUSE(3):y=MOUSE(4)
IF x>315 AND x<375 AND y>168 AND y<178 THEN ende%=ende%+1:anfang%=ende%:GOTO dateiaendernstart
IF x>439 AND x<499 AND y>168 AND y<178 THEN dateiaendernstart
IF x>191 AND x<251 AND y>168 AND y<178 THEN minusfuenf
IF x>253 AND x<313 AND y>168 AND y<178 THEN minusein
IF x>67 AND x<127 AND y>168 AND y<178 THEN plusein
IF x>129 AND x<189 AND y>168 AND y<178 THEN plusfuenf
IF x>5 AND x<65 AND y>168 AND y<178 THEN anfang
IF x>377 AND x<435 AND y>168 AND y<178 THEN dateisuchen
IF x>501 AND x<561 AND y>168 AND y<178 THEN dateidrucken
IF x>563 AND x<623 AND y>168 AND y<178 THEN ende
GOTO 400
anfang:
IF anfang%<=1 THEN anfang%=ende%
IF anfang%>1 THEN anfang%=1
GOTO dateizeigen
plusein:
anfang%=anfang%+1
IF anfang%>ende% THEN GOSUB message:anfang%=ende%
GOTO dateizeigen
minusein:
anfang%=anfang%-1
IF anfang%<=0 THEN GOSUB message2:anfang%=1
GOTO dateizeigen
plusfuenf:
anfang%=anfang%+5
IF anfang%>ende% THEN GOSUB message:anfang%=ende%
GOTO dateizeigen
minusfuenf:
anfang%=anfang%-5
IF anfang%<=0 THEN GOSUB message2:anfang%=1
GOTO dateizeigen
message:
CALL fenster (400,90,600,120,"Systemmitteilung"+SPACE$(50))
COLOR 8:LOCATE 2,3:PRINT "Dateiende erreicht !"
BEEP:SLEEP:SLEEP
SLEEP:SLEEP:WINDOW CLOSE 2:RETURN
message2:
CALL fenster (400,90,600,120,"Systemmitteilung"+SPACE$(50))
COLOR 8:LOCATE 2,3:PRINT "Dateianfang erreicht !"
BEEP:SLEEP:SLEEP
SLEEP:SLEEP:WINDOW CLOSE 2:RETURN
dateiaendernstart:
autor$="":titel$="":verlag$=""
art$="":bestell$="":preis$=""
bemerkung$=""
LINE (5,5)-(640,160),0,bf
COLOR 7,0:LOCATE 2,3:PRINT "Nummer: ";anfang%
maske 5,3,"Autor:",1,autor%
maske 7,3,"Titel:",1,titel%
maske 9,3,"Verlag:",1,verlag%
maske 11,3,"Art:",1,art%
maske 13,3,"Best.-Nr.:",1,bestell%
maske 15,3,"Preis:",1,preis%
maske 17,3,"Bemerkung:",1,bemerkung%
LOCATE 5,10:CALL lineedit (autor$,autor%,0)
IF autor$="" THEN eingabeverlassen
LOCATE 7,10:CALL lineedit (titel$,titel%,0)
LOCATE 9,11:CALL lineedit (verlag$,verlag%,0)
LOCATE 11,8:CALL lineedit (art$,art%,0)
LOCATE 13,14:CALL lineedit (bestell$,bestell%,0)
LOCATE 15,10:CALL lineedit (preis$,preis%,0)
LOCATE 17,14:CALL lineedit (bemerkung$,bemerkung%,0)
LSET aut$=autor$
LSET tit$=titel$
LSET ver$=verlag$
LSET ar$=art$
LSET bes$=bestell$
LSET pre$=preis$
LSET bem$=bemerkung$
PUT #1,anfang%
LINE (5,5)-(630,160),0,bf
daten$=datei$+".sqr"
OPEN daten$ FOR OUTPUT AS#2
WRITE #2,ende%,autor%,titel%,art%,bestell%,preis%,bemerkung%,verlag%
CLOSE #2
GOTO dateizeigen
dateidrucken:
CALL fenster(100,30,530,140,"Daten drucken"+SPACE$(50))
CALL kasten (235,80,315,104,1)
CALL kasten (340,80,420,104,1)
schriftart=1:druckanfang%=1:druckende%=ende%:druck=1
COLOR 5,0:POKE WINDOW (8)+56,3
LOCATE 2,3:PRINT "Menge:"
COLOR 1,0:POKE WINDOW (8)+56,0
LOCATE 4,3:PRINT "Alles:"
maske 4,20,"von:",1,4
maske 4,30,"bis:",1,4 : COLOR 1,0
COLOR 5,0:POKE WINDOW (8)+56,3
LOCATE 6,3:PRINT "Ausgabe:"
COLOR 1,0:POKE WINDOW (8)+56,0
LOCATE 8,3:PRINT "Einzel:":LOCATE 8,20:PRINT"Liste:":LOCATE 8,40:PRINT"Kartei:"
COLOR 5,0:POKE WINDOW (8)+56,3
LOCATE 10,3:PRINT "Qualität"
COLOR 1,0:POKE WINDOW (8)+56,0
LOCATE 12,3:PRINT "Draft:":LOCATE 12,20:PRINT "Nlq:"
COLOR 7,1:LOCATE 12,32:PRINT "Drucken"
LOCATE 12,45:PRINT "Abbruch":COLOR 1,0
LINE (70,23)-(90,33),4,b
LINE (75,54)-(95,64),4,b
LINE (205,54)-(225,64),4,b:LINE (370,54)-(390,64),4,b
LINE (70,87)-(90,97),4,b:LINE (188,87)-(208,97),4,b
LINE (72,25)-(88,31),3,bf:LINE (77,56)-(93,62),3,bf
LINE (72,89)-(88,95),3,bf
dummi=MOUSE(0)
999 WHILE MOUSE(0)=0:WEND
x=MOUSE(3):y=MOUSE(4)
IF x>193 AND x<223 AND y>23 AND y<33 THEN GOSUB auswahllaenge
IF x>70 AND x<90 AND y>23 AND y<33 THEN GOSUB alles
IF x>75 AND x<95 AND y>54 AND y<64 THEN GOSUB einzel
IF x>205 AND x<225 AND y>54 AND y<64 THEN GOSUB liste
IF x>370 AND x<390 AND y>54 AND y<64 THEN GOSUB kartei
IF x>70 AND x<90 AND y>87 AND y<97 THEN GOSUB draft
IF x>188 AND x<208 AND y>87 AND y<97 THEN GOSUB nlq
IF x>235 AND x<315 AND y>80 AND y<104 THEN drucken
IF x>340 AND x<420 AND y>80 AND y<104 THEN WINDOW CLOSE 2:GOTO dateizeigen
GOTO 999
auswahllaenge:
druckanfang%=0:druckende%=0
LINE (72,25)-(88,31),0,bf
COLOR 3,4
LOCATE 4,25:INPUT "",druckanfang%
LOCATE 4,35:INPUT "",druckende%
COLOR 1,0
IF druckanfang%<1 OR druckanfang%>ende% OR druckanfang%>druckende% THEN auswahllaenge
IF druckende%<druckanfang% OR druckende%>ende% OR druckende%<anfang% THEN auswahllaenge
RETURN
alles:
LINE (72,25)-(88,31),3,bf
druckanfang%=1:druckende%=ende%
maske 4,20,"von:",1,4
maske 4,30,"bis:",1,4 : COLOR 1,0
RETURN
einzel:
LINE (77,56)-(93,62),3,bf:LINE (207,56)-(223,62),0,bf
LINE (372,56)-(388,62),0,bf:druck=1:RETURN
liste:
LINE (77,56)-(93,62),0,bf:LINE (207,56)-(223,62),3,bf
LINE (372,56)-(388,62),0,bf:druck=2:RETURN
kartei:
LINE (77,56)-(93,62),0,bf:LINE (207,56)-(223,62),0,bf
LINE (372,56)-(388,62),3,bf:druck=3:RETURN
draft:
LINE (72,89)-(88,95),3,bf:LINE (190,89)-(206,95),0,bf
schriftart=1
RETURN
nlq:
LINE (72,89)-(88,95),0,bf:LINE (190,89)-(206,95),3,bf
schriftart=2
RETURN
drucken:
OPEN "par:" FOR OUTPUT AS #4
IF schriftart=1 THEN PRINT #4,CHR$(27);"P";
IF schrittart=2 THEN PRINT #4,CHR$(27);"x"+CHR$(1)
IF druck=1 THEN einzeldruck
IF druck=2 THEN listendruck
IF druck=3 THEN karteidruck
END
einzeldruck:
FOR a=druckanfang% TO druckende%
GET #1,a
PRINT #4,CHR$(27);"E";
PRINT #4,aut$
PRINT #4,CHR$(27);"F";:PRINT #4,CHR$(27);"4";
PRINT #4,tit$
PRINT #4,CHR$(27);"5";:PRINT #4,"";
PRINT #4,ver$
PRINT #4,ar$
PRINT #4,bes$
PRINT #4,pre$
PRINT #4,bem$
PRINT #4,""
NEXT a
CLOSE #4:WINDOW CLOSE 2:GOTO dateizeigen
listendruck:
FOR a=druckanfang% TO druckende%
GET #1,a
PRINT #4,CHR$(27);"E";
PRINT #4,aut$;CHR$(27);"F";CHR$(27);"4";tit$;
PRINT #4,CHR$(27);"5";
PRINT #4,ver$;
PRINT #4,ar$;
PRINT #4,bes$;
PRINT #4,pre$;
PRINT #4,bem$
PRINT #4,""
NEXT a
CLOSE #4:WINDOW CLOSE 2:GOTO dateizeigen
karteidruck:
FOR a=druckanfang% TO druckende%
GET #1,a
PRINT #4,CHR$(27);"E";
PRINT #4,aut$;CHR$(27);"F"
PRINT #4,CHR$(27);"4";tit$
PRINT #4,CHR$(27);"5";:PRINT #4,""
PRINT #4,ver$
PRINT #4,ar$
PRINT #4,bes$
PRINT #4,pre$
PRINT #4,bem$
PRINT #4,"":PRINT #4,""
NEXT a
CLOSE #4:WINDOW CLOSE 2:GOTO dateizeigen
ende:
CALL fenster(150,50,490,100,"Programm verlassen"+SPACE$(45))
CALL kasten (22,25,60,45,1):CALL kasten (260,25,318,45,1)
COLOR 4:LOCATE 2,3
PRINT "Programm wirklich beenden ?"
COLOR 7,1:LOCATE 5,5:PRINT "Ja":LOCATE 5,35:PRINT"Nein"
dummi=MOUSE(0)
105 WHILE MOUSE(0)=0:WEND
x=MOUSE(3):y=MOUSE(4)
IF x>22 AND x<60 AND y>25 AND y<45 THEN SYSTEM
IF x>260 AND x<318 AND y>25 AND y<45 THEN WINDOW CLOSE 2:GOTO dateiweiter
GOTO 105
dateiweiter:
CALL fenster(150,50,490,100,"Neue Datei laden ?"+SPACE$(45))
CALL kasten (22,25,60,45,1):CALL kasten (260,25,318,45,1)
COLOR 4:LOCATE 2,3
PRINT "Soll eine neue Datei geladen werden ?"
COLOR 7,1:LOCATE 5,5:PRINT "Ja":LOCATE 5,35:PRINT"Nein"
SLEEP:SLEEP
dummi=MOUSE(0)
1000 WHILE MOUSE(0)=0:WEND
x=MOUSE(3):y=MOUSE(4)
IF x>22 AND x<60 AND y>25 AND y<45 THEN WINDOW CLOSE 2:GOTO weiter
IF x>260 AND x<318 AND y>25 AND y<45 THEN WINDOW CLOSE 2:GOTO dateizeigen
GOTO 1000
weiter:
CLOSE #1:CLOSE #2:CLOSE #3:CLOSE #4
GOTO dateiladen
dateisuchen:
CALL fenster (125,20,515,150,"Datei Suchen "+SPACE$(50))
CALL kasten (320,105,380,125,1)
CALL kasten (225,105,300,125,1)
COLOR 7,1
LOCATE 15,30:PRINT "Abbruch"
LOCATE 15,42:PRINT "Weiter"
COLOR 4,0:LOCATE 2,3
PRINT "Wonach soll denn gesucht werden ?":COLOR 6
LOCATE 4,3:PRINT "Autor :"
LOCATE 6,3:PRINT "Titel :"
LOCATE 8,3:PRINT "Verlag:"
LOCATE 10,3:PRINT "Art :"
LOCATE 12,3:PRINT "Best.-Nr.:"
LINE (120,22)-(140,32),1,b:LINE (120,37)-(140,47),1,b
LINE (120,52)-(140,62),1,b:LINE (120,67)-(140,77),1,b
LINE (120,82)-(140,92),1,b:LINE (122,24)-(138,30),3,bf
zahl=1
dummi=MOUSE(0):MOUSE ON
1200 WHILE MOUSE(0)=0:WEND
x=MOUSE(3):y=MOUSE(4)
IF x>320 AND x<380 AND y>105 AND y<125 THEN dateisuchenstart
IF x>225 AND x<300 AND y>105 AND y<125 THEN WINDOW CLOSE 2:GOTO dateizeigen
IF x>120 AND x<140 AND y>22 AND y<32 THEN GOSUB autoranzeige
IF x>120 AND x<140 AND y>37 AND y<47 THEN GOSUB titelanzeige
IF x>120 AND x<140 AND y>52 AND y<62 THEN GOSUB verlaganzeige
IF x>120 AND x<140 AND y>67 AND y<77 THEN GOSUB artanzeige
IF x>120 AND x<140 AND y>82 AND y<92 THEN GOSUB nranzeige
GOTO 1200
autoranzeige:
LINE (122,24)-(138,30),3,bf
zahl=1
LINE (122,39)-(138,45),0,bf
LINE (122,54)-(138,60),0,bf
LINE (122,69)-(138,75),0,bf
LINE (122,84)-(138,90),0,bf
RETURN
titelanzeige:
LINE (122,24)-(138,30),0,bf
zahl=2
LINE (122,39)-(138,45),3,bf
LINE (122,54)-(138,60),0,bf
LINE (122,69)-(138,75),0,bf
LINE (122,84)-(138,90),0,bf
RETURN
verlaganzeige:
LINE (122,24)-(138,30),0,bf
zahl=3
LINE (122,39)-(138,45),0,bf
LINE (122,54)-(138,60),3,bf
LINE (122,69)-(138,75),0,bf
LINE (122,84)-(138,90),0,bf
RETURN
artanzeige:
LINE (122,24)-(138,30),0,bf
zahl=4
LINE (122,39)-(138,45),0,bf
LINE (122,54)-(138,60),0,bf
LINE (122,69)-(138,75),3,bf
LINE (122,84)-(138,90),0,bf
RETURN
nranzeige:
LINE (122,24)-(138,30),0,bf
zahl=5
LINE (122,39)-(138,45),0,bf
LINE (122,54)-(138,60),0,bf
LINE (122,69)-(138,75),0,bf
LINE (122,84)-(138,90),3,bf
RETURN
dateisuchenstart:
ON zahl GOTO autorsuchen,titelsuchen,verlagsuchen,artsuchen,nummersuchen
autorsuchen:
WINDOW CLOSE 2
autor$=""
CALL fenster(130,50,510,100,"Autor suchen"+SPACE$(60))
LOCATE 2,3:PRINT "Geben Sie den Namen des Autors ein:"
maske 4,3,"Name:",1,35
LOCATE 4,9:CALL lineedit (autor$,autor%,0)
sp%=LEN(autor$)
sk%=40-sp%
autor$=autor$+SPACE$(sk%)
FOR i%=anfang% TO ende%
GET #1,i%
IF aut$=autor$ THEN anfang%=i%:WINDOW CLOSE 2:GOTO dateizeigen
NEXT
LOCATE 4,9
PRINT "Nichts gefunden!"
CALL wartemaus
WINDOW CLOSE 2:GOTO dateizeigen
titelsuchen:
WINDOW CLOSE 2
CALL fenster(130,50,510,100,"Titel suchen"+SPACE$(60))
titel$=""
LOCATE 2,3:PRINT "Geben Sie den Titel des Buches ein:"
maske 4,3,"Titel:",1,35
LOCATE 4,10:CALL lineedit (titel$,titel%,0)
sp%=LEN(titel$)
sk%=40-sp%
titel$=titel$+SPACE$(sk%)
FOR i%=anfang% TO ende%
GET #1,i%
IF tit$=titel$ THEN anfang%=i%:WINDOW CLOSE 2:GOTO dateizeigen
NEXT
LOCATE 4,10
PRINT "Nichts gefunden!"
CALL wartemaus
WINDOW CLOSE 2:GOTO dateizeigen
verlagsuchen:
WINDOW CLOSE 2
CALL fenster(130,50,510,100,"Verlag suchen"+SPACE$(60))
verlag$=""
LOCATE 2,3:PRINT "Geben Sie den Verlag des Buches ein:"
maske 4,3,"Verlag:",1,35
LOCATE 4,11:CALL lineedit (verlag$,verlag%,0)
sp%=LEN(verlag$)
sk%=40-sp%
verlag$=verlag$+SPACE$(sk%)
FOR i%=anfang% TO ende%
GET #1,i%
IF ver$=verlag$ THEN anfang%=i%:WINDOW CLOSE 2:GOTO dateizeigen
NEXT
LOCATE 4,11
PRINT "Nichts gefunden!"
CALL wartemaus
WINDOW CLOSE 2:GOTO dateizeigen
artsuchen:
WINDOW CLOSE 2
CALL fenster(130,50,510,100,"Buchart suchen"+SPACE$(60))
art$=""
LOCATE 2,3:PRINT "Geben Sie die Art des Buches ein:"
maske 4,3,"Art:",1,35
LOCATE 4,8:CALL lineedit (art$,art%,0)
sp%=LEN(art$)
sk%=40-sp%
art$=art$+SPACE$(sk%)
FOR i%=anfang% TO ende%
GET #1,i%
IF ar$=art$ THEN anfang%=i%:WINDOW CLOSE 2:GOTO dateizeigen
NEXT
LOCATE 4,8
PRINT "Nichts gefunden!"
CALL wartemaus
WINDOW CLOSE 2:GOTO dateizeigen
nummersuchen:
WINDOW CLOSE 2
CALL fenster(130,50,510,100,"Bestellnummer suchen"+SPACE$(60))
bestell$=""
LOCATE 2,3:PRINT "Geben Sie die Bestellnummer des Buches ein:"
maske 4,3,"Best.-Nr.:",1,30
LOCATE 4,13:CALL lineedit (bestell$,bestell%,0)
sp%=LEN(bestell$)
sk%=40-sp%
bestell$=bestell$+SPACE$(sk%)
FOR i%=anfang% TO ende%
GET #1,i%
IF bes$=bestell$ THEN anfang%=i%:WINDOW CLOSE 2:GOTO dateizeigen
NEXT
LOCATE 4,13
PRINT "Nichts gefunden!"
CALL wartemaus
WINDOW CLOSE 2:GOTO dateizeigen
shareware:
CALL fenster (80,20,560,150,"Autorenmittelung"+SPACE$(45))
CALL kasten (385,105,445,125,1)
COLOR 4:LOCATE 2,3
PRINT "Das Programm ist dazu da, um Ihre Unmengen von Büchern "
PRINT TAB(3)"zu Katalogisieren. Diese können Sie dann sortiern, laden,"
PRINT TAB(3)"speichern usw.":PRINT:COLOR 6
PRINT TAB(3)"Wenn Sie dieses Programm öfter benutzen, so senden Sie"
PRINT TAB(3)"bitte 10 - 15 DM an untenstehende Adresse."
PRINT TAB(3)"Die Version 2.0 ist in Arbeit, Sie können"
PRINT TAB(3)"diese dann über einen Public Domain Versand"
PRINT TAB(3)"beziehen. Das Programm stammt von:":PRINT:COLOR 5
PRINT TAB(7)"Martin Jochimczyk"
PRINT TAB(7)"Am Sande 12"
PRINT TAB(7)"2723 Scheeßel":COLOR 7,1
PRINT TAB(50)"Weiter"
dummi=MOUSE(0):MOUSE ON
200 WHILE MOUSE(0)=0:WEND
x=MOUSE(3):y=MOUSE(4)
IF x>385 AND x<445 AND y>105 AND y<125 THEN WINDOW CLOSE 2:RETURN
GOTO 200
'=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
SUB lineedit (text$,MaxNumChar%,DeleteIt%) STATIC
LineNum% = CSRLIN : FirstColumn% = POS(x)
text$ = LEFT$(text$,MaxNumChar%) + " " 'SPACE for insert
PRINT text$;
column%=FirstColumn%
GOSUB ShowCursor
done% = 0
WHILE NOT done%
k$ = INKEY$
IF k$=CHR$(30) THEN 'right arrow
IF column%<FirstColumn%+LEN(text$)-1 THEN
GOSUB NoCursor
column% = column% + 1
GOSUB ShowCursor
END IF
ELSEIF k$=CHR$(31) THEN 'left arrow
IF column%>FirstColumn% THEN
GOSUB NoCursor
column% = column% - 1
GOSUB ShowCursor
END IF
ELSEIF k$=CHR$(28) THEN 'up arrow
GOSUB NoCursor
column% = FirstColumn%
GOSUB ShowCursor
ELSEIF k$=CHR$(29) THEN 'down arrow
GOSUB NoCursor
column% = FirstColumn% + LEN(text$) - 1
GOSUB ShowCursor
ELSEIF k$=CHR$(8) THEN 'backspace
IF column%>FirstColumn% THEN
RightPart$ = RIGHT$(text$,LEN(text$)-(column%-FirstColumn%))
column% = column% - 1
text$ = LEFT$(text$,column%-FirstColumn%)+RightPart$
LOCATE LineNum%,column%
PRINT RightPart$ + " ";
GOSUB ShowCursor
END IF
ELSEIF k$=CHR$(127) THEN 'delete
IF column%<FirstColumn%+LEN(text$)-1 THEN
RightPart$ = RIGHT$(text$,LEN(text$)-(column%-FirstColumn%)-1)
text$ = LEFT$(text$,column%-FirstColumn%) + RightPart$
LOCATE LineNum%,column%
PRINT RightPart$ + " ";
GOSUB ShowCursor
END IF
ELSEIF k$=CHR$(13) THEN 'return
GOSUB NoCursor
IF DeleteIt% THEN 'erase text
LOCATE LineNum%,FirstColumn%
PRINT SPACE$(LEN(text$));
LOCATE LineNum%,FirstColumn%
ELSE
LOCATE LineNum%,FirstColumn%+LEN(text$)-1
END IF
text$ = LEFT$(text$,LEN(text$)-1) 'strip off SPACE
done%=-1
ELSEIF k$<>"" AND LEN(text$)<=MaxNumChar% THEN 'insert character
GOSUB NoCursor
RightPart$ = k$ + RIGHT$(text$,LEN(text$)-(column%-FirstColumn%))
text$ = LEFT$(text$,column%-FirstColumn%) + RightPart$
LOCATE LineNum%,column%
PRINT RightPart$;
column% = column% + 1
GOSUB ShowCursor
END IF
WEND
EXIT SUB
ShowCursor:
COLOR 0,3
LOCATE LineNum%,column%
PRINT MID$(text$,column%-(FirstColumn%-1),1);
COLOR 8,4
RETURN
NoCursor:
LOCATE LineNum%,column%
PRINT MID$(text$,column%-(FirstColumn%-1),1);
RETURN
END SUB
SUB kasten (x1%,y1%,x2%,y2%,farbe%) STATIC
LINE (x1%,y1%)-(x2%,y2%),farbe%,b
LINE (x1%+2,y1%+2)-(x2%-2,y2%-2),farbe%,bf
END SUB
SUB fenster (x1%,y1%,x2%,y2%,text$) STATIC
WINDOW 2,text$,(x1%,y1%)-(x2%,y2%),18,1
LINE (0,0)-(x2%-x1%,y2%-y1%),1,b
END SUB
SUB maske (y%,x%,a$,abst%,lae%) STATIC
LOCATE y%,x%:COLOR 1,0
PRINT a$;SPACE$(abst%);:COLOR 0,4:PRINT SPACE$(lae%)
END SUB
SUB schatten (x1%,y1%,x2%,y2%) STATIC
LINE (x1%,y1%)-(x2%,y2%),2,bf
LINE (x1%-5,y1%+3)-(x2%-5,y2%+3),0,bf
LINE (x1%-5,y1%+3)-(x2%-5,y2%+3),4,b
END SUB
SUB pixlocate (x%,y%) STATIC
xadr&=WINDOW (8)+36:yadr&=WINDOW (8)+38
POKEW xadr&,x%:POKEW yadr&,y%
END SUB
SUB wartemaus STATIC
SLEEP:SLEEP:SLEEP:SLEEP
END SUB